六省联考2017 乱写

链接

寿司餐厅

$mx^2 + cx$ 解读:吃一个 $x$ 代价 $x$,吃过 $x$ 代价 $mx^2$

看题:

  • 如果选了 $d_{i, j}$,则必须选择 $d_{l, r} (i \leq l \leq r \leq j)$,必须选择 $d_{k, k} ( i \leq k \leq r )$

  • 可以在 $d_{k, k}$ 处减去代价 $a_k$

  • 选了 $d_{k, k}$ 就必须选择物品 $a_k$,代价 $m * a_k^2$

至此已经转化为最大权闭合子图模型。

关于建图:怎么选所有子区间?从 $d_{i, j}$ 向 $d_{i + 1, j}$ 和 $d_{i, j - 1}$ 连 $\infty$ 边表示强制选。

期末考试

大水题,枚举最晚时间,前后缀算一算。卡 long long,从小到大枚举最晚时间,如果仅仅是同学的不满意度已经大于历史的 $ans$ 最小值就 break。

组合数问题

组合意义(这个真的不阴间):从 $nk$ 个物品中选 $t (t \mod k = r)$ 个物品的方案数。

朴素 dp:$f_{i, j}$ 表示到第 $i$ 个物品,选的物品个数 $\mod k = j$ 的方案数。转移就是循环的形式。

注意到 $K$ 和 $r$ 很小,矩乘即可。

另一种做法:$\sum\limits_{i \mod k = r} \binom{nk}{i} = \sum\limits_{i \mod k = r} [x^i] (1 + x)^{nk}$,暴力做多项式快速幂取模即可。

摧毁树状图

暴力拼起来有 84!考场上谁 tm 去写正解啊

只有两种情况:相交与不相交。

设计状态的时候考虑两条路径“生长”的过程。状态如下:

  • $dp_{x, 0}$:选一条上端点为 $x$ 的路径的最大连通块数
  • $dp_{x, 1}$:选一条 $x$ 子树里不经过 $x$ 的路径的最大连通块数(注意这时 $x$ 和 $x$ 的父亲会构成新连通块)
  • $dp_{x, 2}$:选一条 $x$ 子树里经过 $x$ 的路径的最大连通块数
  • $dp_{x, 3}$:选一条上端点为 $x$ 的路径,和一条 $x$ 子树里的路径(两者边不相交)的最大连通块数

注意:这里的最大连通块数都仅指「$x$ 子树内」。

转移比较常规,细节有点多,建议看代码:点我

分手是祝愿

首先按键的方案唯一——从后往前就能唯一确定。$50$ 分就直接从后往前按。

考虑正解:除开这些必须按的键,如果按了其他的键 就得按同一个键按回来

根据期望线性性,将 dp 状态设为 $f[i]$ 表示从 $i$ 个必选的键转移到 $i - 1$ 个必选的键的期望操作次数。

第一项表示选了一个必选的,一次就到 $i - 1$ 去了;第二项表示选了一个其他的,就得 $f[i + 1]$ 次按回来,再 $f[i]$ 次按到 $i - 1$ 去。解一个一元一次方程就好了(

很神仙!

相逢是问候

就剩一道了!加油 xml!

做过的套路题,套了数论皮子的暴力题。

扩展欧拉定理:$a ^ b \mod{p} =$

  • $b < \varphi(p)$:$a^{b}$

  • $b \geq \varphi(p)$:$a^{b \% \varphi(p) + \varphi(p)}$

这题本质是个套娃,$c^{c^{c^{\cdots}}} \mod{p} = c^{c^{c^{\cdots}} \mod{ \varphi(p) } + \varphi(p)(加不加 \varphi(p) 要按上面那样分类讨论) } \mod{p}$,一直套娃下去,模数变成 $\varphi(\varphi(\varphi(\cdots\varphi(p)))) = 1$,并且只要 $log$ 层。

所以像 segment tree beats 那样维护线段树每个区间最小修改次数,如果超过 $log$ 就不改了因为值再也不会变了,否则就递归下去。复杂度三只 $log$:线段树一只,扩展欧拉定理一只,快速幂一只,而快速幂那只可以预处理优化掉所以最后是两只 $log$。

$Code$


总结:「寿司餐厅」如果再熟练一些就能自己做出来了……感觉对模型的转化还不够。待会去做 CF 题「摧毁树状图」恶心人的树形 dp,口区口区。「分手是祝愿」还是挺有意思的,我喜欢它!